//package com.jde.parent.exception;
//
//
//import com.jde.parent.result.ResultEnum;
//import com.jde.parent.result.ResultVO;
//import lombok.extern.slf4j.Slf4j;
//
//
//import java.util.HashMap;
//import java.util.Map;
//import java.util.stream.Collectors;
//
///**
// * @description: 异常切面类 <br>
// * @date: 2019/8/29 10:08 <br>
// * @author: jiangde <br>
// * @version: 1.0 <br>
// */
//@Slf4j
//@RestControllerAdvice
//public class ExceptionHandlerAdvice {
//
//    /**
//     * 全局异常处理
//     *
//     * @param ex
//     * @return ResultVO
//     */
//    @ExceptionHandler(value = Exception.class)
//    public ResultVO globalException(Exception ex) {
//        log.error("globalException:" + ex.getMessage(), ex);
//        return ResultVO.exception(ResultEnum.ERROR);
//    }
//
//    /**
//     * 自定义异常
//     *
//     * @param ex
//     * @return
//     */
//    @ExceptionHandler(value = ApplicationException.class)
//    public ResultVO applicationException(ApplicationException ex) {
//        log.error("ApplicationException:" + ex.getMessage(), ex);
//        return ResultVO.exception(ex);
//    }
//
//    @ExceptionHandler(value = ApplicationRuntimeException.class)
//    public ResultVO applicationRuntimeException(ApplicationRuntimeException ex) {
//        log.error("ApplicationRuntimeException:" + ex.getMessage(), ex);
//        return ResultVO.exception(ex);
//    }
//
//
//    /**
//     * 参数校验异常
//     *
//     * @return
//     * @throws Exception
//     */
//    @ExceptionHandler(value = MethodArgumentNotValidException.class)
//    public ResultVO MethodArgumentNotValidHandler(MethodArgumentNotValidException method) {
//        BindingResult bindingResult = method.getBindingResult();
//        log.error("参数校验异常:" + method.getMessage());
//        return paramValid(bindingResult);
//    }
//
//    @ExceptionHandler(value = BindException.class)
//    public ResultVO MethodArgumentNotValidHandler(BindException bind) {
//        BindingResult bindingResult = bind.getBindingResult();
//        log.error("参数校验异常:" + bind.getMessage());
//        return paramValid(bindingResult);
//    }
//
//
//    private ResultVO paramValid(BindingResult bindingResult) {
//        return ResultVO.exception(ResultEnum.PARAMETEREXCEPTION,
//                bindingResult.getAllErrors().stream().map(it -> {
//                    FieldError is = (FieldError) it;
//                    Map<String, String> map = new HashMap<>();
//                    map.put("field", is.getField());
//                    map.put("defaultMessage", is.getDefaultMessage());
//                    return map;
//                }).collect(Collectors.toList()));
//    }
//
//}
